
$(function () {

    $('#export').click(function () {
        $(this).button('loading').delay(1000).queue(function() {
            $('#table').tableExport({ignoreColumn: [0,10,11],type:'excel',fileName: '项目采购明细', excelstyles:['border-bottom', 'border-top', 'border-left', 'border-right']});
            $(this).button('reset');
            $(this).dequeue();
        });

    });

    $('#purchaseDateFrom').datepicker({
        language: 'zh-CN',
        format: 'yyyy-mm-dd',
        autoclose:true
    });
    $('#purchaseDateTo').datepicker({
        language: 'zh-CN',
        format: 'yyyy-mm-dd',
        autoclose:true
    });

    $('#paymentDateFrom').datepicker({
        language: 'zh-CN',
        format: 'yyyy-mm-dd',
        autoclose:true
    });
    $('#paymentDateTo').datepicker({
        language: 'zh-CN',
        format: 'yyyy-mm-dd',
        autoclose:true
    });

    $('#purchaseDate').datepicker({
        language: 'zh-CN',
        format: 'yyyy-mm-dd',
        autoclose:true
    });
    $('#paymentDate').datepicker({
        language: 'zh-CN',
        format: 'yyyy-mm-dd',
        autoclose:true
    });


    $('[data-toggle="tooltip"]').tooltip();


    $('#save').click(function () {
        if($("#form").valid()) {
            var id = $('#procurementId').val();
            var url = ctx + "/procurement/update"
            if (id == null || id == '') {
                url = ctx + "/procurement/add";
            }
            $.ajax({
                type: "POST",
                contentType: "application/json",
                url: url,
                data: JSON.stringify({
                    procurementId: $("#procurementId").val(),
                    projectId: $("#projectId").val(),
                    purchaseDate: $("#purchaseDate").val(),
                    paymentDate: $("#paymentDate").val(),
                    procurementType: $("#procurementType").val(),
                    amount: $("#amount").val(),
                    vat: $("#vat").val(),
                    procurementCost: $("#procurementCost").val().replace(/,/g, ''),
                    description: $("#description").val()
                }),
                success: function (data) {
                    if (data.code == 200) {
                        alert(data.data);
                    } else {
                        alert(data.msg);
                    }
                    window.location.href = 'list.html';
                }
            });
        }
    });

    getParamsByparamTypeValue('procurement', "#procurementType");
    getParamsByparamTypeValue('procurement', "#sprocurementType");

    // $('#procurementType').on('change',function () {
    //     var text = $('#procurementType option:selected').text();
    //     if(text=='产品采购'){
    //         $("#vat").val(17);
    //     }else if(text=='服务采购'){
    //         $("#vat").val(6);
    //     }
    //     $("#procurementCost").val(formatMoney($('#amount').val()/($('#vat').val()/100+1)));
    //     console.log((1+$('#vat').val())/100);
    // });


    $('#amount').keyup(function(){
        $("#procurementCost").val(formatMoney($('#amount').val()/($('#vat').val()/100+1)));
    });

    $('#vat').keyup(function(){
        $("#procurementCost").val(formatMoney($('#amount').val()/($('#vat').val()/100+1)));
    });

    $('#hideDialog').click(function () {
        $('#dialog').hide();
        validateForm.resetForm();
    });

    showButton([{bId:"add",url:"/procurement/add"},{bId:"del",url:"/procurement/del"}]);


    initTable();
    $('#search').click(function(){
        $('#table').bootstrapTable('refresh', {url: ctx + '/procurement/query'});
    });
    $('#add').click(function(){
        loadModal();
    });
    $('#del').click(function(){
        var selRow = $('#table').bootstrapTable('getSelections');
        if (selRow.length==0) {
            alert('没有选中记录');
        }else {
            if (confirm("确定删除？")) {
                var selId = selRow.map(function (item) {
                    return item.procurementId
                });
                $.ajax({
                    type: "POST",
                    url: ctx + "/procurement/delete",
                    data: {
                        Ids: selId
                    },
                    success: function (data) {
                        alert(data.data);
                        $('#table').bootstrapTable('refresh', {url: ctx + '/procurement/query'});
                    }
                })
            }
        }
    });

    $.ajax({
        type: "POST",
        url: ctx + "/project/getAllProjects",
        success: function(data){
            if(data.code==200){
                var jsonArr = [];
                var result = data.data;
                for(i in result){
                    jsonArr.push({id:result[i].projectId,text:result[i].projectCode+'-'+result[i].projectName});
                }
                $("#projectId").select2({
                    data:jsonArr
                });
            }else{
                alert(data.msg);
            }
        }
    });

    jQuery.validator.addMethod("trim", function(value, element, param) {
        if(param){
            value=$.trim(value);
        }
        return this.optional(element) || (value.length!=0);
    }, $.validator.format("该字段不能为空"));

    //采购验证规则
    var validateForm = $("#form").validate( {
        errorElement: 'span',
        errorClass: 'text-error',
        rules: {
            projectId: {
                required: true,
                trim:true
            },
            purchaseDate: {
                required: true,
                trim:true
            },
            procurementType: {
                required: true,
                trim:true
            },
            amount: {
                required: true,
                trim:true,
                range: [0.00,99999999.99],
                min: 0.00
            },
            vat: {
                range: [0.00,99.99],
                min: 0.00
            }

        },
        messages: {
            projectId: {
                required: '项目不能为空',
                trim:'项目不能为空'
            },
            purchaseDate: {
                required: '采购时间不能为空',
                trim:'采购时间不能为空'
            },
            procurementType: {
                required: '采购类型不能为空',
                trim:'采购类型不能为空'
            },
            amount: {
                required: '采购金额不能为空',
                trim:'采购金额不能为空'
            }
        },
        errorPlacement: function ( error, element ) {
            error.addClass( "ui red pointing label transition" );
            //error.insertAfter( element);
            $(element.parent()).append(error);
        },
        highlight: function ( element, errorClass, validClass ) {
            $( element ).parents( ".row" ).addClass( errorClass );
            $( element ).focus();
        },
        unhighlight: function (element, errorClass, validClass) {
            $( element ).parents( ".row" ).removeClass( errorClass );
        }
    });

    $('#projectId').change(function () {
        if($(this).val()){
            $('#projectId-error').remove();
        }
    });

});
function loadModal(procurementId) {
    $('#dialog').show();
    if(procurementId){
        $.ajax({
            type: "POST",
            url: ctx + "/procurement/query",
            data:{
                procurementId: procurementId
            },
            success: function(data){
                if(data.code == 200){
                    var value = data.data.rows[0];
                    $("#procurementId").val(value.procurementId);
                    $("#projectId").val(value.projectId).trigger("change");
                    $("#purchaseDate").val($.myTime.UnixToDate(Number(value.purchaseDate)));
                    $("#paymentDate").val($.myTime.UnixToDate(Number(value.paymentDate)));
                    $("#procurementType").val(value.procurementType);
                    $("#amount").val(value.amount);
                    $("#vat").val(value.vat);
                    $("#procurementCost").val(value.procurementCost);
                    $("#description").val(value.description);
                }else{
                    alert(data.msg);
                }
            }
        });
    }else{
        $("#procurementId").val('');
        $("#projectId").val('');
        $("#purchaseDate").val('');
        $("#paymentDate").val('');
        $("#procurementType").val('');
        $("#amount").val('');
        $("#vat").val('');
        $("#procurementCost").val('');
        $("#description").val('');
    }

}


function  initTable() {
    $('#table').bootstrapTable({
        height: top.frameHeight*0.7 ,
        url: ctx + '/procurement/query', //这个接口需要处理bootstrap table传递的固定参数
        method:'post',
        dataType: "json",
        cache: false,   //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
        contentType:"application/x-www-form-urlencoded; charset=UTF-8",   //post请求,content type默认设置为 text/plain,在服务端直接通过 @RequestParam参数映射是获取不到的。
        striped: true,      //是否显示行间隔色
        pagination: true,     //是否显示分页（*）
        sortable: false,      //是否启用排序
        sortOrder: "asc",     //排序方式
        pageNumber:1,      //初始化加载第一页，默认第一页
        pageSize: 10,      //每页的记录行数（*）
        pageList: [10, 25, 50, 100,'All' ],  //可供选择的每页的行数（*）
        queryParamsType:'',  //默认值为 'limit' ,在默认情况下 传给服务端的参数为：offset,limit,sort
        //设置为 ''  在这种情况下传给服务器的参数为：pageSize,pageNumber
        queryParams : queryParams,    //前端调用服务时，会默认传递上边提到的参数，如果需要添加自定义参数，可以自定义一个函数返回请求参数
        sidePagination: "server",   //分页方式：client客户端分页，server服务端分页（*）
        responseHandler:function(res){
            //远程数据加载之前,处理程序响应数据格式,对象包含的参数: 我们可以对返回的数据格式进行处理
            //在ajax后我们可以在这里进行一些事件的处理
            return res.data;
        },
        strictSearch: true,
        clickToSelect: true,    //是否启用点击选中行
        searchOnEnterKey: true,
        showFooter: true,
        columns: [{
            checkbox: true
        },{
            title: '序号',  //标题  可不加
            align: 'center',
            formatter: function (value, row, index) {
                var pageNumber = $('#table').bootstrapTable('getOptions').pageNumber;
                var pageSize = $('#table').bootstrapTable('getOptions').pageSize == 'All' ? 0 : $('#table').bootstrapTable('getOptions').pageSize;
                return (pageNumber-1) * pageSize+index+1;
            },
            footerFormatter: function (value) {
                return '合计';
            }
        },{
            field: 'procurementId',
            visible:false
        },{
            field: 'projectCode',
            align: 'center',
            title: '项目编号'
        },{
            field: 'projectName',
            align: 'center',
            title: '项目名称'
        },{
            field: 'purchaseDate',
            align: 'center',
            title: '采购日期',
            formatter: function (value, row, index) {
                return $.myTime.UnixToDate(Number(value));
            }
        },{
            field: 'paymentDate',
            align: 'center',
            title: '付款日期',
            formatter: function (value, row, index) {
                return $.myTime.UnixToDate(Number(value));
            }
        },{
            field: 'procurementTypeName',
            align: 'center',
            title: '采购类型'
        },{
            field: 'amount',
            align: 'right',
            title: '采购金额',
            formatter: function (value, row, index) {
                //格式化金额
                return formatMoney(value);
            },
            footerFormatter: function (value) {
                var sum = 0;
                for(var i in value){
                    sum+=Number(value[i].amount);
                }
                return sum<0?'<span style="color:red">' + formatMoney(sum) + '</span>':formatMoney(sum);
            }
        },{
            field: 'vat',
            align: 'right',
            title: '增值税率',
            formatter: function (value, row, index) {
                return value + '%';
            }
        },{
            field: 'procurementCost',
            align: 'right',
            title: '采购成本',
            formatter: function (value, row, index) {
                //格式化金额
                return formatMoney(value);
            },
            footerFormatter: function (value) {
                var sum = 0;
                for(var i in value){
                    sum+=Number(value[i].procurementCost);
                }
                return sum<0?'<span style="color:red">' + formatMoney(sum) + '</span>':formatMoney(sum);
            }
        },{
            field: 'description',
            align: 'center',
            title: '备注'
        },{
            title: '操作',
            align: 'center',
            formatter: function (value, row, index) {
                //根据角色权限判断是否要显示
                var roleFuncCode = JSON.parse(sessionStorage.getItem("roleFuncCode"));
                if($.inArray("/procurement/edit",roleFuncCode)>=0)
                    return '<a href="javascript:void(0);" onclick="loadModal('+row.procurementId+')"  title="编辑">编辑</a>&nbsp;&nbsp;';
            }
        }]
    });
}
function queryParams(params){
    var loginCode = window.sessionStorage.getItem("managerUser");
    return {
        pageNumber : params.pageNumber,
        pageSize : params.pageSize,
        purchaseDateFrom : $('#purchaseDateFrom').val(),
        purchaseDateTo : $('#purchaseDateTo').val(),
        paymentDateFrom : $('#paymentDateFrom').val(),
        paymentDateTo : $('#paymentDateTo').val(),
        procurementType : $('#sprocurementType').val(),
        projectCode : $('#projectCode').val(),
        projectName : $('#projectName').val(),
        loginCode : loginCode
    }
}